package com.huike.clues.mapper;

import com.github.pagehelper.Page;
import com.huike.clues.domain.TbActivity;
import com.huike.clues.domain.TbClue;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.huike.clues.domain.dto.TbPageClueDTO;
import com.huike.clues.domain.vo.PageClueVO;

import java.util.List;

/**
 * @author 93238
 * @description 针对表【tb_clue(线索)】的数据库操作Mapper
 * @createDate 2023-10-12 06:35:46
 * @Entity com.huike.clues.domain.TbClue
 */
public interface TbClueMapper extends BaseMapper<TbClue> {

    /**
     * 根据线索id集合修改状态
     *
     * @param clue 线索的状态和修改时间
     * @param ids  线索id集合
     */
    void updateStatusByIds(TbClue clue, List<Long> ids);

    /**
     * 更新线索
     */
    void updateClue(TbClue clue);

    /**
     * 查询线索管理集合
     *
     * @param clue 查询条件
     * @return 返回线索集合
     */
    List<TbClue> getClueList(TbClue clue);

    /**
     * 分页查询线索
     *
     * @param tbPageClueDTO 查询条件
     */
    Page<PageClueVO> pageClue(TbPageClueDTO tbPageClueDTO);

    /**
     * 根据线索id获取活动信息
     *
     * @param clueId 线索id
     * @return 返回活动信息
     */
    TbActivity getActivityInfoByClueId(Long clueId);

    /**
     * 获取线索池
     */
    Page<PageClueVO> pagePool(TbPageClueDTO tbPageClueDTO);

    /**
     * 获取需要转派的线索
     *
     * @param userId 从哪个用户转派出去
     */
    List<TbClue> getTransferClueListByUserId(Long userId);

    void updateInfo(TbClue build);

    void updateStatusByClueId(Long clueId);
}




